home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
FROMUTS
/
UNIXLIB37B
/
src
/
c
/
system
< prev
next >
Wrap
Text File
|
1992-03-15
|
1KB
|
63 lines
#ifdef __STDC__
static char sccs_id[] = "@(#) system.c 1.2 "__DATE__" HJR";
#else
static char sccs_id[] = "@(#) system.c 1.2 13/6/91 HJR";
#endif
/* system.c (c) Copyright 1990 H.Rogers */
#include <stdlib.h>
#include <string.h>
#include "sys/param.h"
extern int execl(char *,...);
extern int wait(int *);
extern int vfork(void);
extern void _exit(int);
#ifdef __STDC__
int system(const char *command)
#else
int system(command)
const char *command;
#endif
{
int w = 0;
if (!command) return(-1);
switch (vfork())
{
case -1:
return(-1);
break;
case 0:
{
char *shell,*path;
#ifdef ARCH
if (!(path = getenv("SHELL")))
{
if (*command == '*')
execl((char *)command,0);
else
execl("*","",(char *)command,0);
_exit(1);
}
#else
if (!(path = getenv("SHELL"))) path = "/bin/sh";
#endif
shell = strrchr(path,'/'); if (shell) shell++; else shell = path;
execl(path,shell,"-c",(char *)command,0);
_exit(1);
}
break;
default:
wait(&w);
break;
}
return(w>>8);
}